#pragma once
#include "State.h"
#include "Singleton.h"
#include "Telegram.h"

class Team;

class KickOff : public State<Team>, public Singleton<KickOff>
{
public:
	void Enter(Team* team);
	void Execute(Team* team);
	void Exit(Team* team);
	bool OnMessage(Team* team, const Telegram&);
};

class Defend : public State<Team>, public Singleton<Defend>
{
public:
	void Enter(Team* team);
	void Execute(Team* team);
	void Exit(Team* team);
	bool OnMessage(Team* team, const Telegram&);
};

class Attack : public State<Team>, public Singleton<Attack>
{
public:
	void Enter(Team* team);
	void Execute(Team* team);
	void Exit(Team* team);
	bool OnMessage(Team* team, const Telegram&);
};
